package model;
import java.util.concurrent.Semaphore;

public class VarCond {
	private Semaphore mutex;
	private Semaphore cond;
	private int bloqueados;
	
	public VarCond(Semaphore s){
		mutex=s;	//sincroniza la exlusión mutua del monitor
		cond = new Semaphore(0,true);
		bloqueados=0;
	}
	public void Delay(){
		mutex.release();
		bloqueados++;
		try {
			cond.acquire();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
	public void Resume(){
		if(bloqueados>0){
			bloqueados--;
			cond.release();	//Desbloquea un proceso
		}
	}
	public boolean isEmpty(){
		return bloqueados==0;
	}

}
